/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package superchat;

import java.util.Vector;

/**
 * Classe de gestion des communications et des pseudos des utilisateurs pour le serveur
 * @author georgesm
 */
public class ClientList extends Vector<Communication> {

    Vector<String> pseudos = new Vector<String>();

    public ClientList() {
        super();
    }

    /**
     * Retourne le pseudo correspondant à une communication
     * @param com La communication
     * @return Le pseudo correspondant à la communication com
     */
    public String getPseudo(Communication com) {
        return pseudos.get(this.indexOf(com));
    }

    /**
     * Enregistre un client
     * @param com Objet de communication avec le client
     * @param pseudo Pseudo du client
     */
    public void add(Communication com, String pseudo) {
        if (!super.contains(com)) {
            super.add(com);
        }
        pseudos.add(super.indexOf(com), pseudo);
    }
    
    /**
     * Teste si un pseudo est disponible
     * @param pseudo Pseudo à tester
     * @return Booléen correspondant à la disponibilité du pseudo
     */
    public boolean pseudoDisponible(String pseudo) {
        return (pseudos.indexOf(pseudo) < 0);
    }
    
    /**
     * Test si la liste de clients contient déjà un objet communication
     * @param com L'objet communication à chercher
     * @return Retourne vrai si l'objet communication est déjà enregistré
     */
    public boolean hasCom(Communication com) {
        return super.contains(com);
    }
    
    /**
     * Enlève un client de la liste
     * @param com Objet communication correspondant au client
     */
    public void removeElement(Communication com) {
        pseudos.removeElementAt(super.indexOf(com));
        super.removeElement(com);
    }
    
    /**
     * Recherche une communication correspondant à un pseudo
     * @param pseudo Pseudo du client
     * @return L'objet communication correspondant
     */
    public Communication getComByPseudo(String pseudo) {
        return super.get(pseudos.indexOf(pseudo));
    }
    
}
